# # -*- coding:utf-8 -*-
# import tkinter as tk

# root_window =tk.Tk()
# # 设置窗口title
# root_window.title('C语言中文网：c.biancheng.net')
# # 设置窗口大小:宽x高,注,此处不能为 "*",必须使用 "x"
# root_window.geometry('450x300')
# # 更改左上角窗口的的icon图标,加载C语言中文网logo标
# root_window.iconbitmap('')
# # 设置主窗口的背景颜色,颜色值可以是英文单词，或者颜色值的16进制数,除此之外还可以使用Tk内置的颜色常量
# root_window["background"] = "#C9C9C9"
# # 添加文本内,设置字体的前景色和背景色，和字体类型、大小
# text=tk.Label(root_window,text="欢迎您",bg="yellow",fg="red",font=('Times', 20, 'bold italic'))
# # 将文本内容放置在主窗口内
# text.pack()
# # 添加按钮，以及按钮的文本，并通过command 参数设置关闭窗口的功能
# button=tk.Button(root_window,text="关闭",command=root_window.quit)
# # 将按钮放置在主窗口内
# button.pack(side="bottom")
# #进入主循环，显示主窗口
# root_window.mainloop()




# import tkinter as tk
# # 定义窗口
# window=tk.Tk()
# window.title('YOLO')
# window.geometry('300x300')
# window.iconbitmap('./icon.ico')
# # 定义回调函数
# def callback():
#     print("执行回调函数","YOLo欢迎您")
# # 点击执行按钮
# button =tk.Button(window,text="执行",command=callback)
# button.pack()
# window.mainloop()




# import tkinter as tk
# window =tk.Tk()
# #设置窗口title
# window.title('yolo')
# #设置窗口大小:宽x高，注,此处不能为"**,必须使用“x"
# window.geometry('450x300')
# #获取电脑屏幕的大小
# print("电脑的分辨率是%dx%d"%(window.winfo_screenwidth(),window.winfo_screenheight()))
# #要求窗口的大小，必须先刷新一下屏幕
# window.update()
# print("窗口的分辨率是%dx%d"%(window.winfo_width(),window.winfo_height()))
# #如使用该函数则窗口不能被拉伸
# # window.resizable(e,e)
# #改变背景颜色|
# window.config(background="#6fb765")
# #设置窗口处于顶层
# window.attributes('-topmost',True)
# #设置窗口的透明度
# window.attributes('-alpha',1)
# #设置窗口被允许最大调整的范围，与resizble(冲突
# window.maxsize(00,600)
# #设置窗口被允许最小调整的范围，与resizble()冲突
# window.minsize(50,50)
# #更改左上角窗口的的icon图标,加载YoLologo标
# #window.iconbitmap('./icon.ico')
# #添加文本内容,并对字体添加相应的格式font(字体,字号,"字体类型"）
# text=tk.Label(window,text="yoLo,网址:c.biancheng.net",bg="yellow",fg="red",font=('Times',15,'bold italic underline'))
# #将文本内容放置在主窗口内
# text.pack()
# #添加按钮，以及按钮的文本，并通过command参数设置关闭窗口的功能
# button=tk.Button(window,text="关闭",command=window.quit)
# #将按钮放置在主窗口内
# button.pack(side="bottom")
# #进入主循环，显示主窗口
# window.mainloop()



# import tkinter as tk
# import time
# root= tk.Tk()
# root.title("YOLO")
# #root.iconbitmap('./icon.ico')
# root.geometry('450x150+100+100')
# root.resizable(0,0)
# root.title('我们的时钟')
# # 获取时间的函数
# def gettime():
#     # 获取当前时间
#     dstr.set(time.strftime("%H:%M:%S"))
#     #每隔1s调用一次gettime函数来获取时间
#     root.after(1000,gettime)
# #生成动态字符串
# dstr=tk.StringVar()
# #利用textvariable来实现文本变化
# lb=tk.Label(root,textvariable=dstr,fg='green',font=("微软雅黑",86))
# lb.pack()
# #调用生成时间的函数
# gettime()
# #显示窗口
# root.mainloop()



# import tkinter as tk

# # 创建主窗口
# win = tk.Tk()

# # 设置窗口标题
# win.title("玖爻网")

# # 设置窗口尺寸
# win.geometry('480x260')

# # 设置窗口图标（注意：这里的路径需要替换为实际存在的.ico文件路径）
# # win.iconbitmap('C:/Users/Administrator/Desktop/logo.ico')

# # 创建标签控件
# label = tk.Label(
#     win, 
#     text="网址：a.92.net", 
#     font=('宋体', 21, 'bold italic'), 
#     bg="#FFBD9C", 
#     width=30, 
#     height=5, 
#     padx=10, 
#     pady=15, 
#     borderwidth=10, 
#     relief="sunken"
# )

# # 将标签添加到窗口
# label.pack()

# # 启动事件循环
# win.mainloop()
    
# import tkinter as tk
# from tkinter import messagebox

# window = tk.Tk()
# # 设置窗口的标题
# window.title('tk网')
# # 设置并调整窗口的大小、位置
# window.geometry('400x300+300+200')

# # 当按钮被点击的时候执行click_button()函数
# def click_button():
#     # 使用消息对话框控件，showinfo()表示温馨提示
#     messagebox.showinfo(title='温馨warning', message='这是message')

# # 点击按钮时执行的函数
# button = tk.Button(window, text='点击前往', bg='#ECCD7C', width=20, height=5, command=click_button).pack()

# # 显示窗口
# window.mainloop()



# import tkinter as tk
# from tkinter import messagebox

# win = tk.Tk()
# win.title("中文网")

# # 设置窗口图标（请替换为实际存在的.ico文件路径）
# # win.iconbitmap('C:/Users/Administrator/Desktop/C语言中文网logo.ico')

# # 设置窗口大小和位置，并固定窗口尺寸
# win.geometry('400x200+100+100')
# win.resizable(0, 0)  # 禁止调整窗口大小

# # 创建标签并使用grid布局
# tk.Label(win, text="账号：").grid(row=0)
# tk.Label(win, text="密码：").grid(row=1)

# # 创建输入框控件
# e1 = tk.Entry(win)
# e2 = tk.Entry(win, show="*")  # 密码以*形式显示

# # 放置输入框
# e1.grid(row=0, column=1, padx=10, pady=5)
# e2.grid(row=1, column=1, padx=10, pady=5)

# # 登录回调函数
# def login():
#     messagebox.showinfo("提示", "欢迎您到来")

# # 创建按钮并布局
# tk.Button(win, text="登录", width=10, command=login).grid(
#     row=3, column=0, sticky="w", padx=10, pady=5
# )
# tk.Button(win, text="退出", width=10, command=win.quit).grid(
#     row=3, column=1, sticky="e", padx=10, pady=5
# )

# win.mainloop()
    


# import tkinter as tk
# from tkinter import messagebox
# import re  # 用于正则表达式验证

# win = tk.Tk()
# # 设置主窗口大小和位置 (宽x高+X坐标+Y坐标)
# win.geometry("250x200+600+200")
# win.title("九三")

# # 设置窗口图标（请替换为实际存在的ico文件路径）
# # win.iconbitmap("icon.ico")

# # 禁止调整窗口大小
# win.resizable(0, 0)

# # 创建验证函数
# # 账号必须为数字
# # 密码必须包含大小写字母+特殊字符，长度>8
# def check_account():
#     account = entry1.get()
#     # 验证账号是否为数字
#     if account.isdigit():
#         messagebox.showinfo("验证成功", "账号输入正确")
#         return True
#     else:
#         messagebox.showwarning("验证失败", "账号必须为数字")
#         entry1.delete(0, tk.END)
#         return False

# def check_password():
#     password = entry2.get()
#     # 密码验证正则表达式：至少8个字符，包含大小写字母和特殊字符
#     pattern = r'^(?=.*[a-z])(?=.*[A-Z])(?=.*\W).{8,}$'
#     if re.match(pattern, password):
#         messagebox.showinfo("验证成功", "密码输入正确")
#         return True
#     else:
#         messagebox.showwarning("验证失败", "密码必须包含大小写字母、特殊字符，且长度大于8")
#         entry2.delete(0, tk.END)
#         return False

# # 新建文本标签
# label1 = tk.Label(win, text="账号：")
# label2 = tk.Label(win, text="密码：")

# label1.grid(row=0, padx=5, pady=5, sticky="e")
# label2.grid(row=1, padx=5, pady=5, sticky="e")

# # 创建字符串变量
# dy_string = tk.StringVar()

# # 创建输入框，失去焦点时验证
# entry1 = tk.Entry(win, textvariable=dy_string, validate="focusout", validatecommand=check_account)
# # 密码框以*显示
# entry2 = tk.Entry(win, show="*", validate="focusout", validatecommand=check_password)

# # 对控件进行布局管理
# entry1.grid(row=0, column=1, padx=5, pady=5)
# entry2.grid(row=1, column=1, padx=5, pady=5)

# win.mainloop()
    


import tkinter as tk
from tkinter import messagebox
import re  # 用于正则表达式验证

win = tk.Tk()
# 设置主窗口大小和位置 (宽x高+X坐标+Y坐标)
win.geometry("250x250+600+200")
win.title("九三")

# 设置窗口图标（请替换为实际存在的ico文件路径）
win.iconbitmap(r"icons8-卡尔·拉格菲尔德-32.ico")

# 禁止调整窗口大小
win.resizable(0, 0)

# 创建验证函数
# 账号必须为数字
# 密码必须包含大小写字母+特殊字符，长度>8
def check_account():
    account = entry1.get()
    # 验证账号是否为数字
    if account.isdigit():
        return True
    else:
        return False

def check_password():
    password = entry2.get()
    # 密码验证正则表达式：至少8个字符，包含大小写字母和特殊字符
    pattern = r'^(?=.*[a-z])(?=.*[A-Z])(?=.*\W).{8,}$'
    return re.match(pattern, password) is not None

# 登录函数
def login():
    account = entry1.get()
    password = entry2.get()
    
    # 检查账号和密码是否为空
    if not account:
        messagebox.showwarning("登录失败", "请输入账号")
        return
    if not password:
        messagebox.showwarning("登录失败", "请输入密码")
        return
    
    # 验证账号和密码
    if not check_account():
        messagebox.showwarning("验证失败", "账号必须为数字")
        return
    
    if not check_password():
        messagebox.showwarning("验证失败", "密码必须包含大小写字母、特殊字符，且长度大于8")
        return
    
    # 如果验证通过
    messagebox.showinfo("登录成功", "欢迎登录系统")

# 退出函数
def quit_app():
    win.quit()

# 新建文本标签
label1 = tk.Label(win, text="账号：")
label2 = tk.Label(win, text="密码：")

label1.grid(row=0, padx=5, pady=5, sticky="e")
label2.grid(row=1, padx=5, pady=5, sticky="e")

# 创建输入框
entry1 = tk.Entry(win)
# 密码框以*显示
entry2 = tk.Entry(win, show="*")

# 对控件进行布局管理
entry1.grid(row=0, column=1, padx=5, pady=5)
entry2.grid(row=1, column=1, padx=5, pady=5)

# 创建按钮框架
button_frame = tk.Frame(win)
button_frame.grid(row=2, column=0, columnspan=2, pady=20)

# 创建登录和退出按钮
login_button = tk.Button(button_frame, text="登录", command=login, width=10)
quit_button = tk.Button(button_frame, text="退出", command=quit_app, width=10)

login_button.pack(side=tk.LEFT, padx=10)
quit_button.pack(side=tk.LEFT, padx=10)

win.mainloop()



    